Engine controllers are generally known in which learning of engine control correction factors is provided by maintaining an array of block learn cells. Each cell is assigned a correction factor. Cells are arranged and referenced according to the current level of certain engine operating parameters, such as engine airflow rate, engine load, engine intake manifold pressure, and engine speed. A cell becomes active when referenced by the current level of at least one engine operating parameter. When active, the cell undergoes a learning process in which the cell value is adjusted in direction to drive engine control performance toward a desired performance. The cell value may then be applied to a control command issued in an engine control procedure.
The range of engine operating levels covered by a specific cell are traditionally determined during a calibration process and are static. The cells may be stored in a non-volatile memory device to retain the cell information for application over successive engine operating cycles. The amount of updating (learning) of each cell may vary. Cells defined by engine operating level ranges including more active engine operating levels may benefit from repeated activation and thus repeated learning, while more dormant cells may receive little of such benefit. Accordingly, even adjacent cells may have significantly diverging cell values. When a reference parameter, such as engine airflow or engine speed changes leading to a transition between cells, a substantial change in cell values may occur, leading to a step change in an engine control command. Such an adjustment may cause a perceptible engine transient, reducing engine performance and perhaps reducing confidence in engine stability.
Certain engine operating levels may require significant cell value learning away from initial values, while other parameter levels may not. If fixed calibrations dictate the engine parameter levels that form the cell boundaries, values in adjacent cells may learn away from each other to the extent that significant control perturbations may result when transitioning between the cells. As described, such transitioning is not desirable.
It would therefore be desirable to provide for the described benefits of block learning in a cell array that mitigates significant changes between cells. The cell array should nonetheless preserve the block learn benefit of ensuring that proper compensation for the various engine operating levels are learned and stored in the corresponding cells.